package test.freemarker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import junit.framework.TestCase;

/**
 * if, map, list 简单集合类型处理
 * 
 * @author hemj
 * @date 2017年1月11日
 */
public class SimpleTypeTemplate extends TestCase {

	public void testTemplate() {
		try {
			// 模版配置对象
			Configuration cfg = new Configuration();
			cfg.setDefaultEncoding("UTF-8");
			cfg.setDirectoryForTemplateLoading(new File(FileTemplateTest.class.getResource(
					"/templates").getPath()));

			// 创建模版对象
			Template t = cfg.getTemplate("simple.html", Locale.CHINA);

			// 创建模板参数
			Map map = new HashMap();
			map.put("user", "musesoft");
			map.put("url", "http://www.baidu.com/");
			map.put("name", "百度");

			// List
			Map a = new HashMap();
			a.put("name", "A");
			Map b = new HashMap();
			b.put("name", "B");
			List list = new ArrayList();
			list.add(a);
			list.add(b);
			map.put("mylist", list);

			// Map
			Map mymap = new HashMap();
			mymap.put("key1", "C");
			mymap.put("key2", "D");
			mymap.put("key3", null);
			map.put("mymap", mymap);

			// Map
			Map mapmap = new HashMap();
			mapmap.put("map", a);
			map.put("mapmap", mapmap);

			// 输出内容到指定的输出流中
			t.process(map, new OutputStreamWriter(System.out));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (TemplateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
